cairo_t *cr;
GdkRGBA *error_color; /* Error underline color for this widget */
- GList *widgets; /* widgets encountered when drawing */
GdkRGBA rgba[4];
guint8 rgba_set[4];
}
else if (GTK_IS_WIDGET (attr->data))
{
- GtkWidget *widget;
-
- widget = GTK_WIDGET (attr->data);
-
- text_renderer->widgets = g_list_prepend (text_renderer->widgets,
- g_object_ref (widget));
+ /* nothing to do */
}
else
g_assert_not_reached (); /* not a pixbuf or widget */
/* Returns a GSList of (referenced) widgets encountered while drawing.
*/
-static GList *
+static void
text_renderer_end (GtkTextRenderer *text_renderer)
{
GtkStyleContext *context;
- GList *widgets = text_renderer->widgets;
cairo_restore (text_renderer->cr);
text_renderer->widget = NULL;
text_renderer->cr = NULL;
- text_renderer->widgets = NULL;
-
if (text_renderer->error_color)
{
gdk_rgba_free (text_renderer->error_color);
text_renderer->error_color = NULL;
}
-
- return widgets;
}
static cairo_region_t *
void
gtk_text_layout_draw (GtkTextLayout *layout,
GtkWidget *widget,
- cairo_t *cr,
- GList **widgets)
+ cairo_t *cr)
{
GtkStyleContext *context;
gint offset_y;
gboolean have_selection;
GSList *line_list;
GSList *tmp_list;
- GList *tmp_widgets;
GdkRectangle clip;
g_return_if_fail (GTK_IS_TEXT_LAYOUT (layout));
gtk_text_layout_wrap_loop_end (layout);
- tmp_widgets = text_renderer_end (text_renderer);
- if (widgets)
- *widgets = tmp_widgets;
- else
- g_list_free_full (tmp_widgets, g_object_unref);
+ text_renderer_end (text_renderer);
g_slist_free (line_list);
}
cairo_save (cr);
cairo_translate (cr, 1 + DRAG_ICON_LAYOUT_BORDER, 1 + DRAG_ICON_LAYOUT_BORDER);
- gtk_text_layout_draw (layout, widget, cr, NULL);
+ gtk_text_layout_draw (layout, widget, cr);
cairo_restore (cr);
{
GtkTextView *text_view;
GtkTextViewPrivate *priv;
- GList *child_exposes;
- GList *tmp_list;
text_view = GTK_TEXT_VIEW (widget);
priv = text_view->priv;
area->width, area->height);
#endif
- child_exposes = NULL;
-
cairo_save (cr);
cairo_translate (cr, -priv->xoffset, -priv->yoffset);
gtk_text_layout_draw (priv->layout,
widget,
- cr,
- &child_exposes);
+ cr);
cairo_restore (cr);
-
- tmp_list = child_exposes;
- while (tmp_list != NULL)
- {
- GtkWidget *child = tmp_list->data;
-
- gtk_container_propagate_draw (GTK_CONTAINER (text_view),
- child,
- cr);
-
- g_object_unref (child);
-
- tmp_list = tmp_list->next;
- }
-
- g_list_free (child_exposes);
}
static gboolean
/* propagate_draw checks that event->window matches
* child->window
*/
- if (!vc->anchor)
- gtk_container_propagate_draw (GTK_CONTAINER (widget),
- vc->widget,
- cr);
+ gtk_container_propagate_draw (GTK_CONTAINER (widget),
+ vc->widget,
+ cr);
tmp_list = tmp_list->next;
}